home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / lib / ditroff / tmac.an < prev    next >
Text File  |  1988-12-29  |  6KB  |  331 lines

  1. .\" Copyright (c) 1980 Regents of the University of California.
  2. .\" All rights reserved.  The Berkeley software License Agreement
  3. .\" specifies the terms and conditions for redistribution.
  4. .\"
  5. .\"    @(#)tmac.an.new    6.3 (Berkeley) 2/2/86
  6. .\"
  7. '    DT, PD, SM, and B macros invoked internally.
  8. '    # month name
  9. .if "\nd"0" .nr m \n(mo-1
  10. .if "\nm"0" .ds ]m January
  11. .if "\nm"1" .ds ]m February
  12. .if "\nm"2" .ds ]m March
  13. .if "\nm"3" .ds ]m April
  14. .if "\nm"4" .ds ]m May
  15. .if "\nm"5" .ds ]m June
  16. .if "\nm"6" .ds ]m July
  17. .if "\nm"7" .ds ]m August
  18. .if "\nm"8" .ds ]m September
  19. .if "\nm"9" .ds ]m October
  20. .if "\nm"10" .ds ]m November
  21. .if "\nm"11" .ds ]m December
  22. '    # set the date
  23. .if n \{.nr m \nm+1
  24. .     ie \nd .ds ]W Modified \nm/\nd/\ny
  25. .     el .ds ]W Printed \n(mo/\n(dy/\n(yr\}
  26. .if t \{.ie \nd .ds ]W \*(]m \nd, 19\ny
  27. .     el .ds ]W \*(]m \n(dy, 19\n(yr\}
  28. .if t .ds ]W Sprite version 1.0
  29. .if n .ds ]W Sprite v1.0
  30. .if t .tr *\(**
  31. .ie n \{\
  32. .    ds lq \&"\"
  33. .    ds rq \&"\"
  34. .\}
  35. .el \{\
  36. .    ds rq ''
  37. .    ds lq ``
  38. .\}
  39. '    # reset the basic page layout
  40. .de }E
  41. .}f
  42. .in \\n()Ru+\\n(INu
  43. .ll \\n(LLu
  44. ..
  45. '    # default tabs
  46. .de DT
  47. 'ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
  48. ..
  49. '    # set type font and size
  50. .de }f
  51. .ps 10
  52. .ft 1
  53. ..
  54. '    # handle the head of the page
  55. .de }H
  56. .ev 1
  57. .}C
  58. .ie "\*(.T"va" 'sp .1i
  59. .el 'sp .5i
  60. .ft 1
  61. .ps 10
  62. .tl @\\*(]H@\\*(]D@\\*(]H@
  63. 'sp .5i
  64. .ev
  65. .ns
  66. ..
  67. '    # handle the foot of the page
  68. .de }F
  69. .ev 1
  70. .ft 1
  71. .ps 10
  72. 'sp .5i
  73. .tl @\\*(]W@\\*(]L@%@
  74. 'bp
  75. .ev
  76. ..
  77. '    # the cut mark
  78. .if !"\*(.T"vp" .ig
  79. .de }C
  80. .po 0i
  81. .lt 7.45i
  82. .tl '__''__'
  83. .po
  84. .lt
  85. ..
  86. '    # the final cut mark
  87. .de }M
  88. .}N
  89. .wh -1p }C
  90. .ll \\n(LLu
  91. ..
  92. '    # no runout unless there was a .TH
  93. .de }K
  94. .}N
  95. .pl 1
  96. .ll \\n(LLu
  97. ..
  98. .em }K
  99. '    # set title and heading
  100. .de TH
  101. .PD
  102. .if n .nr IN .5i
  103. .if t .nr IN .5i
  104. .nr LL \\n(.l
  105. .ds ]H \\$1
  106. .ds ]D UNKNOWN MANUAL SECTION
  107. .if '\\$2'1' .ds ]D User Commands
  108. .if '\\$2'1C' .ds ]D User Commands
  109. .if '\\$2'1L' .ds ]D User Commands
  110. .if '\\$2'6' .ds ]D Games and Demos
  111. .if '\\$2'7' .ds ]D Tables
  112. .if '\\$2'2' .ds ]D C Library Procedures
  113. .if '\\$2'3' .ds ]D C Library Procedures
  114. .if '\\$2'3C' .ds ]D C Library Procedures
  115. .if '\\$2'3F' .ds ]D Fortran Library Procedures
  116. .if '\\$2'3S' .ds ]D C Library Procedures
  117. .if '\\$2'3M' .ds ]D Mathematical Library Procedures
  118. .if '\\$2'3N' .ds ]D C Library Procedures
  119. .if '\\$2'3R' .ds ]D RPC Services
  120. .if '\\$2'3X' .ds ]D C Library Procedures
  121. .if '\\$2'5' .ds ]D File Formats
  122. .if '\\$2'4' .ds ]D Devices
  123. .if '\\$2'8' .ds ]D User Commands
  124. .ds ]L\"
  125. .if !"\\$3"" .ds ]L \\$3
  126. .if !"\\$4"" .ds ]W \\$4
  127. .wh 0 }H
  128. .if t .if !"\*(.T"va" .wh -1i }F
  129. .if t .if "\*(.T"va" .wh -1.4i }F
  130. .if n .wh -1.167i }F
  131. .em }M
  132. .if \\n(nl .bp 1
  133. .}E
  134. .DT
  135. .nr )I .5i
  136. .nr )R 0
  137. .if n .na
  138. ..
  139. '    # section heading
  140. .de SH
  141. .ss 12
  142. .if "\\$1"SYNOPSIS" .ss 18
  143. .}X 0
  144. .nr )E 2
  145. .SM
  146. \&\\$1 \|\\$2 \|\\$3 \|\\$4 \|\\$5 \|\\$6
  147. ..
  148. '    # sub section heading
  149. .de SS
  150. .ne 4
  151. .}X \\n()Ru+\\n(INu ""
  152. \&\\$1 \|\\$2 \|\\$3 \|\\$4 \|\\$5 \|\\$6
  153. .br
  154. ..
  155. '    # subroutine for section heading
  156. .de }X
  157. .}E
  158. .ti \\$1
  159. .sp \\n()Pu
  160. .ne 2
  161. .nr )R 0
  162. .fi
  163. .it 1 }N
  164. .B
  165. ..
  166. '    # end of SH (cf }X above and }N below)
  167. .de }2
  168. .nr )E 0
  169. .}E
  170. .nr )I .5i
  171. .ns
  172. ..
  173. '    # italic
  174. .de I
  175. .ft 2
  176. .it 1 }N
  177. .if !"\\$1"" \&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6
  178. ..
  179. '    # bold
  180. .de B
  181. .ft 3
  182. .it 1 }N
  183. .if !"\\$1"" \&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6
  184. ..
  185. '    # small
  186. .de SM
  187. .ps 9
  188. .it 1 }N
  189. .if !"\\$1"" \&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6
  190. ..
  191. '    # combinations of Roman, italic, bold
  192. .de RI
  193. .}S 1 2 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
  194. ..
  195. .de RB
  196. .}S 1 3 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
  197. ..
  198. .de IR
  199. .}S 2 1 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
  200. ..
  201. .de IB
  202. .}S 2 3 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
  203. ..
  204. .de BR
  205. .}S 3 1 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
  206. ..
  207. .de BI
  208. .}S 3 2 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
  209. ..
  210. '    # make special case of shift out of italic
  211. .de }S
  212. .ds ]F
  213. .if "\\$1"2" .if !"\\$5"" .ds ]F\^
  214. .ie !"\\$4"" .}S \\$2 \\$1 "\\$3\f\\$1\\$4\\*(]F" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
  215. .el \\$3
  216. .}f
  217. ..
  218. '    # paragraph
  219. .de LP
  220. .PP
  221. ..
  222. .de PP
  223. .sp \\n()Pu
  224. .ne 1.1v
  225. .}E
  226. .nr )I .5i
  227. .ns
  228. ..
  229. '    # synonym for .PP
  230. .de P
  231. .PP
  232. ..
  233. '    # paragraph distance
  234. .de PD
  235. .if t .nr )P .4v
  236. .if n .nr )P 1v
  237. .if !"\\$1"" .nr )P \\$1v
  238. ..
  239. '    # paragraph with hanging indent
  240. .de HP
  241. .sp \\n()Pu
  242. .ne 1.1v
  243. .if !"\\$1"" .nr )I \\$1n
  244. .ll \\n(LLu
  245. .in \\n()Ru+\\n(INu+\\n()Iu
  246. .ti \\n()Ru+\\n(INu
  247. .}f
  248. ..
  249. '    # indented paragraph
  250. .de IP
  251. .TP \\$2
  252. \&\\$1
  253. ..
  254. '    # tagged paragraph (paragraph with hanging label)
  255. .de TP
  256. .if !"\\$1"" .nr )I \\$1n
  257. .sp \\n()Pu
  258. .ne 1.1v
  259. .in \\n()Ru
  260. .nr )E 1
  261. .ns
  262. .it 1 }N
  263. .di ]B
  264. ..
  265. '    # end of TP (cf }N below)
  266. .de }1
  267. .ds ]X \&\\*(]B\\
  268. .nr )E 0
  269. .if !"\\$1"" .nr )I \\$1n
  270. .}f
  271. .ll \\n(LLu
  272. .in \\n()Ru+\\n(INu+\\n()Iu
  273. .ti \\n(INu
  274. .ie !\\n()Iu+\\n()Ru-\w@\\*(]X@u-3p \{\\*(]X
  275. .br\}
  276. .el \\*(]X\h@|\\n()Iu+\\n()Ru@\c
  277. .}f
  278. ..
  279. '    # handle end of 1-line features
  280. .de }N
  281. .if \\n()E .br
  282. .di
  283. .if "\\n()E"0" .}f
  284. .if "\\n()E"1" .}1
  285. .if "\\n()E"2" .}2
  286. .nr )E 0
  287. ..
  288. '    # increase relative indent
  289. .de RS
  290. .nr ]\\n+()p \\n()I
  291. .nr )\\n()p \\n()R
  292. .ie !"\\$1"" .nr )R +\\$1n
  293. .el .nr )R +\\n()I
  294. .nr )I .5i
  295. .}E
  296. ..
  297. .de DS
  298. .RS
  299. .nf
  300. .sp
  301. ..
  302. '    # decrease relative indent
  303. .de RE
  304. .if !"\\$1"" \{.ie "\\$1"0" .nr )p 1 1
  305. .        el .nr )p \\$1 1\}
  306. .ds ]i \\*(]I\\n()p
  307. .ds ]r \\*(]R\\n()p
  308. .nr )I \\*(]i
  309. .nr )R \\*(]r
  310. .if \\n()p .nr )p -1
  311. .}E
  312. ..
  313. .de DE
  314. .fi
  315. .RE
  316. .sp.5
  317. ..
  318. .nr )p 0 1
  319. .ds ]I \\\\n(]
  320. .ds ]R \\\\n()
  321. .bd S B 3
  322. .if t .ds R \(rg
  323. .if n .ds R (Reg.)
  324. .ds S \s10
  325. .hy 14
  326. .if "\*(.T"va" .po -0.4i
  327. ./"
  328. ./" Sprite addition:  define ]l string variable to hold directory
  329. ./" containing macro library, for ease in including tmac.sprite.
  330. .ds ]l /sprite/lib/ditroff/
  331.